using Mbs.Collections;

namespace Mbs.Messaging.Imp
{
   

    public class PoolSubjectBuilder : SubjectBuilder
    {
        protected override IQueue<T> CreateQueue<T>()
        {
            return new SyncQueue<T>();
        }
        protected override ISubscriber<T> CreateSubscriber<T>()
        {
            return new Subscriber<T>(new SyncList<ObserverHandler<T>>(), new SyncList<PreFilterHandler<T>>(), new SyncList<FilterHandler<T>>());
        }
        protected override IExecutor<T> CreateExecutor<T>()
        {
            return new PoolExecutor<T>();
        }
       
    }
}
